The present invention relates generally to the field of high performance of a microprogram controlled data processing system, and more specifically the invention relates to a microprogram-controlled data processing system with shorter execution time for system instructions.
Many of the data processing systems, such as digital computers, developed in recent years are microprogram-controlled data processing systems, where a system instruction is executed by a sequence of elementary operations. Such elementary operation is processed under the control of a microinstruction which has been stored in a control storage. A sequence of microinstructions which execute a given system instruction make up a micro routine or microprogram.
A general discussion relating to the method of implementing a micro program control storage can be found in an article entitled "Microprogram Control For System/360" by S. G. Tucker, found in the IBM System Journal, Vol. 6, No. 4, 1967, Pages 222-241.
In most microprogram-controlled systems, microinstruction sequencing is achieved by allocating a portion of each microinstruction for indicating the address of the next microinstruction to be executed. The initial microinstruction of a microinstruction sequence is uniquely determined by the operation code of the system instruction to be executed.
It is to be noted, however, that the microinstruction sequence for each system instruction is not uniquely determined by its operation code only, because some of the microinstruction sequences have several branches to be selected after testing various system conditions. Execution of several microinstructions to test various system conditions is required before one of the branches is selected. The presence of these microinstructions for test operations prolongs the execution time required for completing the system instructions.
One approach adopted in the prior art for reducing the execution time of the system instructions is to use a control storage which comprises a plurality of control storage modules. Each microinstruction is comprised of a system control data field, a next address field and a branch control data field. The system control data field in each microinstruction is used to control the system operation. The next microinstruction address is supplied to all control storage modules, allowing them access to the same storage location. Each control storage module stores one of the possible next microinstructions at the storage location specified by the next address data of the preceding microinstruction. One of the possible next microinstructions is selected by gating means in response to the results of tests on system conditions conducted under control of the branch control data.
It is to be noted that each microinstruction can control both the system operations and test of system conditions simultaneously. Thus, no specific microinstruction is required solely for testing the system conditions. As a result the number of microinstructions as well as the excution time for completing a system instruction is reduced.
It is to be noted, however, that the prior art system is effective when at least one preceding microinstruction with system control data is present before one of the next different microinstructions is to be selected. Otherwise, the initial microinstruction and the following few microinstructions serving in some cases must be specific microinstructions only for testing system conditions. Such microinstructions for tests can not be omitted, with the result that the number of microinstructions as well as the execution time for completeting a system instruction can not be reduced.